package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.api.document.req.si.BillsHistoricalRecordsDto;
import com.cmc.cloud.cmclink.doc.entity.BlnoBlPrintLogDO;
import com.cmc.cloud.cmclink.doc.vo.blnoblprintlogvo.BlnoBlPrintLogCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnoblprintlogvo.BlnoBlPrintLogRespVO;
import com.cmc.cloud.cmclink.doc.vo.blnoblprintlogvo.BlnoBlPrintLogUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 提单打印 Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface BlnoBlPrintLogConvert {
    /**
     * 获取转换接口的实例
     */
    BlnoBlPrintLogConvert INSTANCE = Mappers.getMapper(BlnoBlPrintLogConvert.class);

	/**
     * 将创建请求VO转换为DO
     *
     * @param bean 创建请求VO
     * @return DO
     */
    BlnoBlPrintLogDO convert(BlnoBlPrintLogCreateReqVO bean);
    /**
     * 将创建请求VO转换为更新请求VO
     *
     * @param bean 创建请求VO
     * @return 更新请求VO
     */
    BlnoBlPrintLogUpdateReqVO convertToUpdateReqVO(BlnoBlPrintLogCreateReqVO bean);
    /**
     * 将DO转换为创建请求VO
     *
     * @param bean DO
     * @return 创建请求VO
     */
    BlnoBlPrintLogCreateReqVO convertToCreateReqVO(BlnoBlPrintLogCreateReqVO bean);

	/**
     * 将更新请求VO转换为DO
     *
     * @param bean 更新请求VO
     * @return DO
     */
    BlnoBlPrintLogDO convert(BlnoBlPrintLogUpdateReqVO bean);

	/**
     * 将DO转换为查询响应VO
     *
     * @param bean DO
     * @return VO
     */
    BlnoBlPrintLogRespVO convert(BlnoBlPrintLogDO bean);

	/**
     * 将DO列表转换为查询响应VO列表
     *
     * @param list DO列表
     * @return VO List
     */
    List<BlnoBlPrintLogRespVO> convertList(List<BlnoBlPrintLogDO> list);
    /**
     * 将DO列表转换为查询响应VO列表
     *
     * @param blnoBlPrintLogPage
     * @return
     */
    List<BillsHistoricalRecordsDto> convertBillsHistoricalRecordsDto(List<BlnoBlPrintLogDO> blnoBlPrintLogPage);
}
